package cn.iocoder.yudao.module.reading.controller.app.record.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * 阅读统计响应 VO
 *
 * @author 李晨
 */
@Schema(description = "阅读统计响应 VO")
@Data
public class ReadingStatsRespVO {

    @Schema(description = "总阅读绘本数", requiredMode = Schema.RequiredMode.REQUIRED, example = "50")
    private Integer totalBooks;

    @Schema(description = "今日阅读绘本数", requiredMode = Schema.RequiredMode.REQUIRED, example = "3")
    private Integer todayBooks;

    @Schema(description = "本周阅读绘本数", requiredMode = Schema.RequiredMode.REQUIRED, example = "15")
    private Integer weekBooks;

    @Schema(description = "本月阅读绘本数", requiredMode = Schema.RequiredMode.REQUIRED, example = "45")
    private Integer monthBooks;

    @Schema(description = "总阅读时长（分钟）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1200")
    private Integer totalReadingTime;

    @Schema(description = "今日阅读时长（分钟）", requiredMode = Schema.RequiredMode.REQUIRED, example = "45")
    private Integer todayReadingTime;

    @Schema(description = "平均阅读时长（分钟）", example = "24")
    private Integer averageReadingTime;

    @Schema(description = "连续阅读天数", example = "7")
    private Integer consecutiveDays;

    @Schema(description = "最长连续阅读天数", example = "15")
    private Integer maxConsecutiveDays;

    @Schema(description = "月度统计")
    private List<MonthlyStatsVO> monthlyStats;

    @Schema(description = "月度统计")
    @Data
    public static class MonthlyStatsVO {
        @Schema(description = "月份", example = "2024-01")
        private String month;

        @Schema(description = "阅读绘本数", example = "20")
        private Integer bookCount;

        @Schema(description = "阅读时长（分钟）", example = "480")
        private Integer readingTime;

        @Schema(description = "阅读天数", example = "15")
        private Integer readingDays;
    }

}
